package com.qdlc.p2p.biz.service;

import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.AccountLogHis;
import com.qdlc.p2p.dal.model.AccountLogHisModel;

/**
 * 资金记录历史
 *
 * @author wuaj
 * @version 1.1.0.0
 * @since 2016年3月17日
 */
public interface AccountLogHisService {

    /**
     * 新增
     *
     * @param log
     */
    void add(AccountLogHis log);

    /**
     * 列表
     *
     * @param model
     * @return
     */
    PageDataList<AccountLogHisModel> list(AccountLogHisModel model);

    /**
     * 资金记录列表
     *
     * @param model
     * @param pageNumber
     * @param pageSize
     * @return
     */
    PageDataList<AccountLogHisModel> accountLogList(AccountLogHisModel model, int pageNumber, int pageSize);

    /**
     * 今日净收益
     *
     * @param userId
     * @return
     */
    double todayEarnAmount(long userId);

    /**
     * 累计净收益
     *
     * @param userId
     * @return
     */
    double earnAmount(long userId);

    /**
     * 累计净收益
     *
     * @return
     */
    double earnAmount();

    /**
     * 根据时间、类型获取资金记录金额
     *
     * @param type
     * @param year
     * @return
     */
    double[] amount(String type, String year);

    /**
     * 根据时间、类型获取资金记录金额  earn_type[]之和 - pay_type 为方法返回值
     *
     * @param earn_type 支出类型总和，类型与类型之间用逗号隔开
     * @param pay_type  收回类型综合，类型与类型之间用逗号隔开
     * @param year
     * @return
     */
    double[] amount(String[] earn_type, String pay_type, String year);

}
